/**
 * 
 */
package co.com.sed.model.beans;

import java.util.ArrayList;
import java.util.Date;

/**
 * @author Mejia
 *
 */
public class Cargo {
	private int idCargo;
	private String cargo;
	private Date fechaInicial;
	private Nivel nivel;
	private Dependencia dependencia;
	
	private ArrayList<Funcionario> funcionarios = null;
	
	
	/**
	 * 
	 */
	public Cargo() {
		super ();
		this.funcionarios = new ArrayList<Funcionario>();
	}

	
	public Cargo(int idCargo) {
		super ();
		this.idCargo = idCargo;
			
	}


	/**
	 * @return the idCargo
	 */
	
	/**
	 * @param idCargo
	 * @param cargo
	 * @param fechaInicial
	 * @param nivel
	 * @param dependencia
	 */
	public Cargo(int idCargo, String cargo, Date fechaInicial, int id_nivel,
			int id_dependencia) {
		super();
		this.idCargo = idCargo;
		this.cargo = cargo;
		this.fechaInicial = fechaInicial;
		this.nivel = new Nivel(id_nivel);
		this.dependencia = new Dependencia (id_dependencia);
	}

	
	public Cargo(String cargo, Date fechaInicial, int id_nivel,
			int id_dependencia) {
		super();
		
		this.cargo = cargo;
		this.fechaInicial = fechaInicial;
		this.nivel = new Nivel(id_nivel);
		this.dependencia = new Dependencia (id_dependencia);
	}
	
	/**
	 * @param idCargo
	 * @param cargo
	 * @param fechaInicial
	 * @param nivel
	 * @param dependencia
	 * @param funcionario
	 */
	public Cargo(int idCargo, String cargo, Date fechaInicial, int id_nivel,
			int id_dependencia,
			ArrayList<co.com.sed.model.beans.Funcionario> funcionarios) {
		super();
		this.idCargo = idCargo;
		this.cargo = cargo;
		this.fechaInicial = fechaInicial;
		this.nivel = new Nivel (id_nivel);
		this.dependencia = new Dependencia(id_dependencia);
		
		this.funcionarios = new ArrayList<Funcionario>();
	}


	

	

	
	public int getIdCargo() {
		return idCargo;
	}
	
	


	/**
	 * @param idCargo the idCargo to set
	 */
	public void setIdCargo(int idCargo) {
		this.idCargo = idCargo;
	}


	/**
	 * @return the cargo
	 */
	public String getCargo() {
		return cargo;
	}


	/**
	 * @param cargo the cargo to set
	 */
	public void setCargo(String cargo) {
		this.cargo = cargo;
	}


	/**
	 * @return the fechaInicial
	 */
	public Date getFechaInicial() {
		return fechaInicial;
	}


	/**
	 * @param fechaInicial the fechaInicial to set
	 */
	public void setFechaInicial(Date fechaInicial) {
		this.fechaInicial = fechaInicial;
	}


	/**
	 * @return the nivel
	 */
	public Nivel getNivel() {
		return nivel;
	}


	/**
	 * @param nivel the nivel to set
	 */
	public void setNivel(Nivel nivel) {
		this.nivel = nivel;
	}


	/**
	 * @return the dependencia
	 */
	public Dependencia getDependencia() {
		return dependencia;
	}


	/**
	 * @param dependencia the dependencia to set
	 */
	public void setDependencia(Dependencia dependencia) {
		this.dependencia = dependencia;
	}


	/**
	 * @return the funcionarios
	 */
	public ArrayList<Funcionario> getFuncionarios() {
		return funcionarios;
	}


	/**
	 * @param funcionarios the funcionarios to set
	 */
	public void setFuncionarios(ArrayList<Funcionario> funcionarios) {
		this.funcionarios = funcionarios;
		
		for (Funcionario funcionario : this.funcionarios){
			funcionario.setCargo(this);
		}
	}

	
	
}
